package cn.gintone.auth;

import cn.dev33.satoken.oauth2.logic.SaOAuth2Template;
import cn.dev33.satoken.oauth2.model.SaClientModel;
import org.springframework.stereotype.Component;

/**
 * @Description TODO
 * @Author Elon
 * @Date 2023/8/18 18:09
 **/
@Component
public class SaOAuth2TemplateImpl extends SaOAuth2Template {
    /**
     * 根据 id 获取 Client 信息
     * @param clientId
     * @return
     */
    @Override
    public SaClientModel getClientModel(String clientId) {
        // 此为模拟数据，真实环境需要从数据库查询
        if ("1001".equals(clientId)) {
            return new SaClientModel().setClientId("1001").setClientSecret("aaaa-bbbb-cccc-dddd-eeee").setAllowUrl("*")
                    .setContractScope("userinfo").setIsAutoMode(true);
        }
        return null;
    }

    /**
     * 根据 ClientId 和 LoginId 获取openid
     * @param clientId
     * @param loginId
     * @return
     */
    @Override
    public String getOpenid(String clientId, Object loginId) {
        // 此为模拟数据，真实环境需要从数据库查询
        return "gr_SwoIN0MC1ewxHX_vfCW3BothWDZMMtx__";
    }
}